package com.semac.server.database.fetchers;

import java.sql.ResultSet;
import java.sql.SQLException;

import com.semac.server.database.classesbase.AbstractDataFetcher;
import com.semac.shared.model.Pessoa;
import com.semac.shared.model.Presenca;

public class PresencaFetcher extends AbstractDataFetcher<Presenca> {

	public PresencaFetcher(String whereString) {
		super(whereString);
	}

	@Override
	protected String getColumnsToBeSelected() {
		return 	"\"inscricao\".\"codAtividade\" as \"codAtividade\", " +
				"\"inscricao\".\"presenca\" as \"presenca\", " +
				"\"pessoa\".\"codPessoa\" as \"codPessoa\", " +
				"\"pessoa\".\"nomePessoa\" as \"nomePessoa\", " +
				"\"pessoa\".\"email\" as \"email\", " +
				"\"pessoa\".\"codCartaoUfrgs\" as \"codCartaoUfrgs\"";
	}

	@Override
	protected String getTableToBeSelected() {
		return "\"inscricao\" left join \"pessoa\" " +
				"on \"pessoa\".\"codPessoa\" = \"inscricao\".\"codPessoa\"";
	}

	@Override
	public void fetchDataFromResultSet(ResultSet resultSet) throws SQLException {
		while (resultSet.next()){
			Presenca presenca = new Presenca();
			
			Pessoa pessoa = new Pessoa(resultSet.getInt("codPessoa"));			
			pessoa.setNome(resultSet.getString("nomePessoa"));
			pessoa.setCartaoUfrgs(resultSet.getInt("codCartaoUfrgs"));
			pessoa.setEmail(resultSet.getString("email"));
			
			presenca.setIdAtividade(resultSet.getInt("codAtividade"));
			presenca.setPessoa(pessoa);
			presenca.setPresente(resultSet.getBoolean("presenca"));			
			
			this.results.add(presenca);
		}
	}

}
